<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />        
        <link rel="stylesheet" type="text/css" href="../../../css/guide.css" />        
        <script type="text/javascript">var basepath = '../../../'; var lang = 'fr'; var bc = {'Localisation (l10n)': '../l10n.html'};</script>         
        <script type="text/javascript" src="../../../js/loader.js"></script>        
    </head>
    <body>
        <h1>Localisation d'un contrôleur (action)</h1>
        <p>
            La localisation d'un texte dans un contrôleur se fait en utilisant la méthode t() se trouvant dans la classe héritée "Action".
            Exemple
        </p>
        <php> 
            // La classe hérite bien de la classe Action            
            class m_demo_action_i18n extends Action
            {
                public function execute()
                {     
                    // Dans l'exemple la langue définie par défaut est fr_FR                
                    echo $this->t('Ceci est un texte de démonstration').' / ';
                    
                    // On défini l'anglais des Etats-unis pour la suite de l'exécution
                    i18n::setLocale('en_US');
                    
                    // La locale a changée le texte sera traduit
                    echo $this->t('Ceci est un texte de démonstration');
                }
            }            
        </php>
        
        <h2>Utilisation de variables</h2>
        <p>
            Il est possible de fournir des variables aux chaînes à traduire en fournissant un tableau associatif à la méthode t(), exemple           
        </p>
        
        <php>
            echo $this->t("Bonjour mon nom est %name%", array("name" => "John"));
        </php>
        
        Affichera
        
        <blockquote class="screen">Bonjour mon nom est John</blockquote>
        
        <h2>Emplacement des fichiers de localisation XLIFF</h2>
        <p>
            Les fichiers XLIFF de localisation générés automatiquement se trouvent dans le dossier i18n du même module 
            que l'action (contrôleur). Si le dossier n'existe pas, il est automatiquement créé.
        </p>
        <p>
            Par défaut, les fichiers se nomment actions.xx.xml (où xx est le code de la langue souhaité et / ou de la culture). 
            Il est cependant possible de nommer différement les fichiers en définissant le nom souhaité comme troisième 
            argument de la méthode t(). Exemple
        </p>
        
        <php>
            // Dans l'exemple la langue définie par défaut est fr_FR
            i18n::setLocale('en_US');
            
            // Va enregistrer le texte dans le fichier errors.en.xml
            $this->t("Erreur : le fichier n'existe pas", array(), 'errors');
        </php>
    </body>            
</html>